package com.library.management.service;

import com.library.management.common.PageResult;
import com.library.management.common.BorrowRecordStats;
import com.library.management.entity.BorrowRecord;

import java.util.List;

/**
 * 借阅记录服务接口
 */
public interface BorrowRecordService {
    /**
     * 借书
     */
    int borrow(BorrowRecord borrowRecord);

    /**
     * 还书
     */
    int returnBook(Long id);

    /**
     * 取消借阅
     */
    int cancel(Long id);

    /**
     * 根据ID查询借阅记录
     */
    BorrowRecord getById(Long id);

    /**
     * 分页查询借阅记录列表
     */
    PageResult<BorrowRecord> list(BorrowRecord borrowRecord, Integer pageNum, Integer pageSize);

    /**
     * 查询用户的借阅记录
     */
    List<BorrowRecord> listByUserId(Long userId);

    /**
     * 查询图书的借阅记录
     */
    List<BorrowRecord> listByBookId(Long bookId);

    /**
     * 查询用户的借阅统计
     */
    BorrowRecordStats getBorrowStatsByUserId(Long userId);
}